#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Módulos 
import sys, gtk, pygame, utils, objetos
from pygame.locals import *

# Constantes

# Clases
# ---------------------------------------------------------------------
class Personajes(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = utils.load_image("images/personajes1.png", True)
        self.rect = self.image.get_rect()
        self.rect.centerx = 150*utils.RES
        self.rect.centery = 290*utils.RES
    
class Linea:
	def __init__(self,texto,posx,posy,x_ini,y_ini,efecto,velocidad):
		self.text,self.rect = utils.texto_normal(texto, x_ini,y_ini)
		self.posx = posx
		self.posy = posy
		self.efecto = efecto
		self.velocidad = velocidad
		
	def display(self,screen):
		screen.blit(self.text,self.rect)
	
	def mover(self):
		if self.efecto == 1:
			if self.rect.centerx < self.posx:
				self.rect.centerx = self.rect.centerx + self.velocidad
		elif self.efecto == 2:
			if self.rect.centery < self.posy:
				self.rect.centery = self.rect.centery + self.velocidad
		elif self.efecto == 3:
			if self.posx < self.rect.centerx:
				self.rect.centerx = self.rect.centerx - self.velocidad	
				
			

# ---------------------------------------------------------------------
def dibujar(screen,cursor_picture, clock):
    salir = 0
    background_image = utils.load_image('images/fondo1_2.png')
    i= 0
    j= 0
    numero_linea = 1
    btn_adelante = objetos.BotonAdelante()
    btn_atras = objetos.BotonAtras()
    
    
    clase1, clase1_rect = utils.texto_clase("Clase 1", 750*utils.RES, 15*utils.RES)
           
    titulo, titulo_rect = utils.texto_subtitulo("¿Que es el MEDIO AMBIENTE?", 380*utils.RES, 50*utils.RES)
    titulo_sub, titulo_sub_rect = utils.texto_subtitulo("......................................", 380*utils.RES, 60*utils.RES)
    bloque1 = Linea('El MEDIO AMBIENTE es todo aquello que nos rodea:', 435*utils.RES,110*utils.RES, 900*utils.RES, 110*utils.RES,3,6)
    bloque2 = (Linea('- Los seres vivos: plantas, animales y personas', 415*utils.RES, 140*utils.RES, 415*utils.RES, -100*utils.RES, 2,3),
    Linea('- Los elementos no vivos: el suelo, el aire, el agua, las rocas,', 473*utils.RES,170*utils.RES, 473*utils.RES, -150*utils.RES, 2,3),
    Linea('y todos los objetos o construcciones realizadas por personas', 470*utils.RES,200*utils.RES, 470*utils.RES, -200*utils.RES, 2,3) )
    bloque3 = ( Linea('Pero además, todos estos componentes vivos y no vivos se', 460*utils.RES,230*utils.RES, 900*utils.RES, 230*utils.RES, 3,5),
    Linea('relacionan entre sí constantemente, aunque a veces ni', 445*utils.RES,260*utils.RES,1000*utils.RES, 260*utils.RES, 3,5),
    Linea('siquiera nos damos cuenta.', 340*utils.RES,290*utils.RES,1050*utils.RES, 290*utils.RES, 3,5) )
    bloque4 = ( Linea('Por eso decimos que el AMBIENTE es un SISTEMA: si algo', 455*utils.RES,320*utils.RES,1050*utils.RES, 320*utils.RES, 3,5),
    Linea('cambia en él, se modifican otros componentes también.', 455*utils.RES,350*utils.RES,1100*utils.RES, 350*utils.RES, 3,5) )
    
    betoytrueno = Personajes()
    dialogo_beto = utils.load_image('images/c1_dialogo_beto1.png')
    dialogo_trueno = utils.load_image('images/c1_dialogo_trueno1.png')
    show_dialog = False
    frame = 0
    
    while salir == 0:
    
    	# Pump GTK messages.
		while gtk.events_pending():
			gtk.main_iteration()
			
		for eventos in pygame.event.get():
			if eventos.type == QUIT:
				sys.exit(0)
			elif eventos.type == pygame.VIDEORESIZE:
			   pygame.display.set_mode(eventos.size, pygame.RESIZABLE)	
			elif eventos.type == MOUSEBUTTONDOWN:
				if btn_adelante.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 3
					btn_adelante.sonido.play()	
				elif btn_atras.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 1
					btn_atras.sonido.play()	
				elif betoytrueno.rect.collidepoint(pygame.mouse.get_pos()):
					if show_dialog == False:
						show_dialog = True
					else:
						show_dialog = False

		# Realiza la animacion del texto				
			
		screen.blit(background_image, (0, 0))
		screen.blit(clase1, clase1_rect)
		if 20 < frame:
			screen.blit(titulo, titulo_rect)
			screen.blit(titulo_sub, titulo_sub_rect)
		if 50 < frame:
			bloque1.mover()
			bloque1.display(screen)
		if 100 < frame:
		 	for linea in bloque2:
				linea.mover()
				linea.display(screen)
		if 	260 < frame:
			for linea in bloque3:
				linea.mover()
				linea.display(screen)
		if 380	< frame:
			for linea in bloque4:
				linea.mover()
				linea.display(screen)
		screen.blit(betoytrueno.image, betoytrueno.rect)
		if 530	< frame:
			screen.blit(dialogo_beto, (int(90*utils.RES), int(30*utils.RES)))
		if 560	< frame:
			screen.blit(dialogo_trueno, (int(400*utils.RES), int(370*utils.RES)))
		screen.blit(btn_adelante.image, btn_adelante.rect)
		screen.blit(btn_atras.image, btn_atras.rect)
		screen.blit(cursor_picture, pygame.mouse.get_pos())
		pygame.display.flip()

		# contador para animaciones
		frame = frame + 1
		
		# Try to stay at 30 FPS
		clock.tick(30)
                	 
    return salir

# This function is called when the game is run directly from the command line:
# ./TestGame.py 
def main():
	
	pygame.init()
	screen = pygame.display.set_mode((int(800*utils.RES), int(520*utils.RES)), pygame.RESIZABLE) #pygame.display.get_surface() #

	# Fake a Sugar cursor for the pyGame canvas area
	pygame.mouse.set_cursor((8,8),(0,0),(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0))
	cursor_picture = pygame.image.load('images/standardcursor.png')
	cursor_picture.convert_alpha() 
	clock = pygame.time.Clock()
	dibujar(screen,cursor_picture,clock)

if __name__ == '__main__':
   main()
